Skip to content

ct/l1: add cloud_topics_compaction scheduling group#29288

Merged
WillemKauf merged 2 commits intoredpanda-data:devfrom
WillemKauf:cloud_topics_compaction_sg
Feb 4, 2026
Merged

ct/l1: add cloud_topics_compaction scheduling group#29288
WillemKauf merged 2 commits intoredpanda-data:devfrom
WillemKauf:cloud_topics_compaction_sg

Conversation

@WillemKauf
Copy link
Contributor

Backports Required

  • none - not a bug fix
  • none - this is a backport
  • none - issue does not exist in previous branches
  • none - papercut/not impactful enough to backport
  • v25.3.x
  • v25.2.x
  • v25.1.x

Release Notes

  • none

Copilot AI review requested due to automatic review settings January 16, 2026 06:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new cloud_topics_compaction scheduling group to better isolate CPU resources for cloud topics compaction operations. The change introduces a dedicated scheduling group with a share count of 150, adds the necessary accessor method, and integrates it into the cloud topics level one compaction worker.

Changes:

  • Added a new cloud_topics_compaction scheduling group with 150 shares in the CPU scheduling system
  • Updated the compaction worker to accept and use the new scheduling group for its work loop
  • Updated test fixtures to accommodate the new scheduling group parameter

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/v/resource_mgmt/cpu_scheduling.h Defines and initializes the new cloud_topics_compaction scheduling group
src/v/cloud_topics/level_one/compaction/worker_manager.cc Passes the new scheduling group to worker initialization
src/v/cloud_topics/level_one/compaction/worker.h Adds scheduling group parameter to constructor and member variable
src/v/cloud_topics/level_one/compaction/worker.cc Stores the scheduling group and wraps work loop execution with it
src/v/cloud_topics/level_one/compaction/tests/worker_manager_test.cc Updates test to provide default scheduling group
src/v/cloud_topics/level_one/compaction/tests/scheduler_fixture.h Updates test fixture to provide default scheduling group
src/v/cloud_topics/level_one/compaction/BUILD Adds dependency on cpu_scheduling library

@WillemKauf WillemKauf force-pushed the cloud_topics_compaction_sg branch from 04454c0 to e715f68 Compare January 16, 2026 06:27
@WillemKauf
Copy link
Contributor Author

Oops. Looks like we're capping out at 18 scheduling groups max, and cloud_topics_compaction kicks us over the edge:

int_flag(
name = "scheduling_groups",
build_setting_default = 18,
make_variable = "SCHEDULING_GROUPS",
)

Is there any reason we can't kick the can down the road by bumping this? We should also probably start investigating use of scheduling supergroups:

https://github.com/scylladb/seastar/blob/2a537bf22e7db2157b8d709313d2b9462ef2b83e/include/seastar/core/scheduling.hh#L64-L72

Copy link
Member

@dotnwat dotnwat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whats the status on this are we planning to make this change?

@WillemKauf
Copy link
Contributor Author

whats the status on this are we planning to make this change?

🤷

there was a brief discussion on scheduling groups here. Probably something to raise again with the team in a meeting.

@WillemKauf
Copy link
Contributor Author

WillemKauf commented Feb 2, 2026

Closing in favour of re-using the existing compaction scheduling group here: #29492

@WillemKauf WillemKauf closed this Feb 2, 2026
@WillemKauf WillemKauf reopened this Feb 4, 2026
@WillemKauf WillemKauf force-pushed the cloud_topics_compaction_sg branch from e715f68 to ed3c697 Compare February 4, 2026 17:54
int_flag(
name = "scheduling_groups",
build_setting_default = 18,
build_setting_default = 19,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I missed a discussion on this, but should we give ourselves headroom so this doesn't need to get bumped each time we add a scheduling group? Like we jump to 24 or 32?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thinking was to leave it maxed out just so people really have to think about adding more before they do so.

@vbotbuildovich
Copy link
Collaborator

CI test results

test results on build#80107
test_class test_method test_arguments test_kind job_url test_status passed reason test_history
QuotaManagementUpgradeTest test_upgrade null integration https://buildkite.com/redpanda/redpanda/builds/80107#019c29ee-d693-4880-a37f-bb6fdaac98c6 FLAKY 9/11 Test PASSES after retries.No significant increase in flaky rate(baseline=0.0674, p0=0.5026, reject_threshold=0.0100. adj_baseline=0.1890, p1=0.4099, trust_threshold=0.5000) https://redpanda.metabaseapp.com/dashboard/87-tests?tab=142-dt-individual-test-history&test_class=QuotaManagementUpgradeTest&test_method=test_upgrade

@WillemKauf WillemKauf merged commit 02b5fe9 into redpanda-data:dev Feb 4, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants